home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 2000
/
MacHack 2000.toast
/
pc
/
The Hacks
/
Softshoe
/
Lisa's Mac Parts
/
Pascal Strings
/
Str.h
< prev
Wrap
Text File
|
2000-06-23
|
4KB
|
120 lines
// Str.h
#ifndef Str_h
#define Str_h
#ifndef PString_h
#include "PString.h"
#endif
typedef unsigned char Str255[256];
typedef unsigned char Str63[64];
typedef unsigned char Str32[33];
typedef unsigned char Str31[32];
typedef unsigned char Str27[28];
typedef unsigned char Str15[16];
template < uint32 size >
class Str: public PString
{
protected:
uint8 characters[ size + 1 ];
public:
Str() : PString( Data( characters, size+1 ), "\p" ) {}
Str( PString text ) : PString( Data( characters, size+1 ), text ) {}
Str( ConstPString text ) : PString( Data( characters, size+1 ), text ) {}
Str( const uint8 *text ) : PString( Data( characters, size+1 ), text ) {}
Str( ConstData text ) : PString( Data( characters, size+1 ), text ) {}
};
class String255: public Str<255>
{
public:
String255() {}
String255( PString text ) : Str<255>( text ) {}
String255( ConstPString text ) : Str<255>( text ) {}
String255( const uint8 *text ) : Str<255>( text ) {}
String255( ConstData text ) : Str<255>( text ) {}
operator uint8 *() { return characters; }
operator Str255&() { return characters; }
operator Str63&() { return characters; }
operator Str32&() { return characters; }
operator Str31&() { return characters; }
operator Str27&() { return characters; }
operator Str15&() { return characters; }
};
class String63: public Str<63>
{
public:
String63() {}
String63( PString text ) : Str<63>( text ) {}
String63( ConstPString text ) : Str<63>( text ) {}
String63( const uint8 *text ) : Str<63>( text ) {}
String63( ConstData text ) : Str<63>( text ) {}
operator Str63&() { return characters; }
operator Str32&() { return characters; }
operator Str31&() { return characters; }
operator Str27&() { return characters; }
operator Str15&() { return characters; }
};
class String32: public Str<32>
{
public:
String32() {}
String32( PString text ) : Str<32>( text ) {}
String32( ConstPString text ) : Str<32>( text ) {}
String32( const uint8 *text ) : Str<32>( text ) {}
String32( ConstData text ) : Str<32>( text ) {}
operator Str32&() { return characters; }
operator Str31&() { return characters; }
operator Str27&() { return characters; }
operator Str15&() { return characters; }
};
class String31: public Str<31>
{
public:
String31() {}
String31( PString text ) : Str<31>( text ) {}
String31( ConstPString text ) : Str<31>( text ) {}
String31( const uint8 *text ) : Str<31>( text ) {}
String31( ConstData text ) : Str<31>( text ) {}
operator Str31&() { return characters; }
operator Str27&() { return characters; }
operator Str15&() { return characters; }
};
class String27: public Str<27>
{
public:
String27() {}
String27( PString text ) : Str<27>( text ) {}
String27( ConstPString text ) : Str<27>( text ) {}
String27( const uint8 *text ) : Str<27>( text ) {}
String27( ConstData text ) : Str<27>( text ) {}
operator Str27&() { return characters; }
operator Str15&() { return characters; }
};
class String15: public Str<15>
{
public:
String15() {}
String15( PString text ) : Str<15>( text ) {}
String15( ConstPString text ) : Str<15>( text ) {}
String15( const uint8 *text ) : Str<15>( text ) {}
String15( ConstData text ) : Str<15>( text ) {}
operator Str15&() { return characters; }
};
#endif